//从 12345 这个数字中挑选出三个数共有十种方式：
//        123, 124, 125, 134, 135, 145, 234, 235, 245, 345
//        在组合学中，我们将其记为 C(5,3)=10。一般地：
//        可以发现，n = 23 时产生第一个超过一百万的数：C(23,10)=1144066。那么，对于 1≤n≤100
//        中有多少个 C(n,r)大于一百万(包括重复的在内)？
//        答案：4075

import java.math.BigInteger;
import java.util.Scanner;

public class Week053 {
    static final int start = 23;
    static final BigInteger BIG = BigInteger.valueOf(1000000);
    static BigInteger[] fact;

    static BigInteger Combination(int n, int m) {
        return fact[n].divide(fact[m]).divide(fact[n - m]);
    }

    static void run() {
        final int n = new Scanner(System.in).nextInt();
        //预处理阶乘数组，减少重复计算，0的阶乘定义为1
        fact = new BigInteger[n + 1];
        fact[0] = BigInteger.ONE;
        for (int i = 1; i <= n; ++i) fact[i] = fact[i - 1].multiply(BigInteger.valueOf(i));
        int cnt = 0;
        for (int i = start; i <= n; ++i) {
            // 根据 C(n,m)=C(n,n-m)，只需判断前 n/2个
            for (int j = 1, end = i >> 1; j <= end; ++j) {
                if (Combination(i, j).compareTo(BIG) > 0) {
                    // 如果有相对应的数，则一次加2
//                    if (j + j != i) cnt += 2;
//                    else ++cnt;

                    // 根据C(i,j)的单调性 ↗ ↘，得
                    // 如果C(i,j)>BIG，则对于j，C(i,j)均大于BIG，其中j在[i,i-j]范围内
                    // 所以个数为 i - 2*j + 1
                    cnt += i - 2 * j + 1;
                    break;
                }
            }
        }
        System.out.println(cnt);
    }

    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        run();
        System.out.println("\n程序运行时间：" + (System.currentTimeMillis() - startTime) + "ms.");
    }
}
